package 第二章_JavaSE基础.三_Java中的多态;

public class 多态 {
    /**
     * 靠的是父类或者接口定义的引用变量可以指向子类或者具体实现类的实例对象。
     * 在程序执行时候才动态绑定。
     * @param args
     */
    public static void main(String[] args) {
        show(new cat());
        show(new dog());

        Animal a = new cat();
        a.eat();
        cat c = (cat) a;
        c.work();
    }

    public static void show(Animal a){
        a.eat();
        if (a instanceof cat){
            cat c = (cat) a;
            c.work();
        } else if (a instanceof dog){
            dog d = (dog) a;
            d.work();
        }
    }
}
